Network administrators frequently need to discover the active machines on a given computer network. The techniques used to discover the machines may depend on the protocol or protocols underlying the computer network. When operating under a networking protocol such as Version 4 of the Internet Protocol (hereinafter, “IPv4”), a number of tools and techniques may be available to perform various network management functions, machine discovery or port scanning. When the network in question contains only IPv4 segments, then any of these available tools or techniques may be appropriate. Even if no tools or techniques are available or appropriate, a brute force search on an IPv4 network might entail searching about 16,384 possible addresses, given a /18 network having a network mask of 255.255.192.0. Using a combination of multithreaded and asynchronous programming techniques, such a brute force search would take about a minute.
Other more advanced network protocols are being introduced and increasingly adopted. These newer network protocols support much larger address spaces than previous network protocols. One example of such an advanced network protocol is Version 6 of the Internet Protocol (hereinafter, “IPv6”). IPv6 supports an address space of 128 bits, 64 bits of which are reserved for host addressing. This means that there might be 264 (184,467,441,000,000,000,000) addresses where hosts might be found.
If the network in question contains at least some IPv6 segments, the tools available under IPv4 may not operate efficiently on the IPv6 segments, or may not operate on such segments at all. Resorting to a brute-force approach for locating nodes in an IPv6 network would mean searching across 184,467,441,000,000,000,000 potential addresses. Scanning a block of addresses this large, assuming probes are sent out at a rate of 1/second, yields a duration of approximately 5,865,494,028,540 years. Even with a hybrid multithreaded and asynchronous communications model enabling 1,000 probes per second or more, the duration remains unacceptable.